/* UNIVERSIDADE FEDERAL DE CAMPINA GRANDE - UFCG
 * Disciplina: Laboratorio de Estrutura de Dados
 * Professor: Marco Aurelio Spohn
 * Alunos: Alexandre Sales Vasconcelos       Mat.: 20621146
 * Atividade 2
 */

/**
 * Classe que implementa uma fila de strings
 *
 * @version 1.0 2008/04/28
 * @author Alexandre Sales
 * @see <a href="http://lab.eda.ufcg.googlepages.com/intro"> Atividade 2 Problema 1</a>
 */
public class Fila {
	Nodo Fist = new Nodo();
	Nodo Last = new Nodo();

	/**
	 * Construtor da classe Fila().
	 */
	public Fila() {
		Fist = Last;
	}

	/**
	 * Metodo que adiciona um novo no a fila.
	 *
	 * @param informacao Uma String a ser salva no no.
	 */
	public void addFila(String informacao) {
		Nodo aux;
		aux = new Nodo(informacao);
		if (Fist==Last&&(Fist==null||Fist.equals(""))) {
			Fist = aux;
			Last = aux;
		} else {
			Last.setProximoNodo(aux);
			Last = aux;
		}
	}

	/**
	 * Metodo que verifica se a fila ainda tem um proximo no.
	 *
	 * @return Retorna uma boolean true se tiver um proximo no na fila, e false se for o ultimo.
	 */
	public boolean hasNext() {
		if (Fist.proximo != null) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * Metodo que devolver o valor armazenado no no.
	 *
	 * @return Retorna uma String com o valor armazenado no no.
	 */
	public String getInformacao() {
		String retorno = Fist.informacao;
		Fist = Fist.proximo;
		return retorno;
	}

}
